Hand-held personal planetarium

ABSTRACT

Method and apparatus are provided for a hand-held planetarium which displays a sky pattern comprising graphical representations of celestial objects. A sensing system comprising sensors provides information about an orientation of the device. A controller receives such information and determines an altitude angle of a pointing axis and an azimuthal angle of the pointing axis. The controller accesses a database of celestial objects and determines celestial objects for display based at least in part on a measure of proximity of the celestial objects to the pointing axis. Graphical representations of the celestial objects are displayed on a screen. Additional information for the celestial objects is displayed on the screen over a plurality of display slices. Based at least in part on sensed orientation information, the orientation of a motorized telescope is controlled so that the celestial objects displayed on the screen come within the telescope&#39;s field of view.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/367,447 filed on 6 Feb. 2009 and entitled HAND-HELD PERSONALPLANETARIUM and which is hereby incorporated herein by reference for allpurposes.

TECHNICAL FIELD

The invention relates to personal planetarium devices which displayrepresentations of, and/or information related to, celestial objects andmethods for using same.

BACKGROUND

Humans have been interested in celestial observation and the science ofastronomy since at least the time of Copernicus. For amateurastronomers, it can be difficult to identify particular celestialobjects, to locate particular objects by name or to locate deep spaceobjects (DSOs).

The prior art has evolved a number of devices which may be used byamateur astronomers to identify celestial objects viewed through theirrespective viewing channels. Such devices are disclosed, for example,in:

-   -   U.S. Pat. No. 5,311,203;    -   U.S. Pat. No. 6,366,212;    -   U.S. Pat. No. 6,570,506;    -   U.S. Pat. No. 6,844,822;    -   U.S. Pat. No. 7,068,180;    -   US patent application No. 2008/0168492; and    -   US patent application No. 2008/0163504.

The prior art has also evolved so-called planetarium software for use onpersonal computers. Such planetarium software receives user input, suchas longitude, latitude, local time, compass heading angle (azimuth) andelevation angle. In response to this input, the planetarium softwaredisplays, on the computer monitor, representations of a correspondingarea of the night sky including pre-stored representations of celestialobjects and their names. Examples of such planetarium software include:

-   -   SkyMap™ from SkyMap Software of Chesire, England;    -   Starry Night™ from Imaginova, Corp. Santa Crux, Calif.; and    -   TheSky™ from Software Bisque, Inc. of Golden, Colo.

These prior art devices and software can be difficult to use with easeand/or accuracy. There remains a general desire for personal planetariumdevices which can be used with ease and accuracy.

BRIEF DESCRIPTION OF THE DRAWINGS

In drawings which depict non-limiting embodiments of the invention:

FIG. 1 is a plan view of the user interface side of a personalplanetarium device according to a particular embodiment of theinvention;

FIG. 2 is a schematic illustration of a number of reference axes used inthis description in relation to the FIG. 1 device;

FIG. 3 is a schematic illustration of a number of additional directionalconventions used in this description;

FIG. 4 is a block diagram schematically illustrating a number of thecomponents of the FIG. 1 device;

FIG. 5 shows a method for initializing the FIG. 1 device according to aparticular embodiment of the invention;

FIG. 6 shows a method 110 for operating device 10 to display a skypattern comprising representations of celestial objects according to aparticular embodiment;

FIG. 7 shows an example of a sky pattern displayed on the display of theFIG. 1 device according to a particular embodiment;

FIG. 8A shows a method for querying a database of celestial objects todetermine which objects are sufficiently proximate to the pointing axisof the FIG. 1 device so as to be displayed on its display according to aparticular embodiment of the invention;

FIG. 8B is a schematic depiction of the cells and rings used in the FIG.8A database query;

FIG. 9 shows example screen boundaries according to a number ofembodiments of the invention;

FIGS. 10A and 10B respectively depict use of the FIG. 1 device in normalorientation mode and downward orientation mode;

FIG. 11 depicts a method for implementing an auto-switching orientationmode according to a particular embodiment;

FIG. 12 shows the FIG. 1 device being used to control a motorizedtelescope system; and

FIG. 13 shows a method for using the FIG. 1 device to control theoperation of the FIG. 12 telescope system according to a particularembodiment.

DETAILED DESCRIPTION

Throughout the following description, specific details are set forth inorder to provide a more thorough understanding of the invention.However, the invention may be practiced without these particulars. Inother instances, well known elements have not been shown or described indetail to avoid unnecessarily obscuring the invention. Accordingly, thespecification and drawings are to be regarded in an illustrative, ratherthan a restrictive, sense.

Aspects of the invention provide apparatus and operational methods for ahand-held planetarium which displays a sky pattern comprising graphicalrepresentations of one or more celestial objects. A sensing systemcomprising one or more sensors provides information about an orientationof the device. A controller receives the information about theorientation of the device from the sensing system and determinestherefrom an altitude angle of a pointing axis and an azimuthal angle ofthe pointing axis. The controller accesses a database of celestialobjects and determines, from within the database, one or more selectedcelestial objects for display based at least in part on a metric ofproximity of the celestial objects to the pointing axis. Graphicalrepresentations of the one or more selected celestial objects aredisplayed on a display screen.

The device may be operated in a normal orientation mode or a downwardfacing orientation mode where a modified pointing axis is substituted inplace of the original pointing axis for determining the one or moreselected celestial objects for display. The altitude coordinate of themodified pointing axis may be positive even though the altitude of theoriginal pointing axis is negative. In some embodiments, the modifiedpointing axis may be selected to be one of the original device-planeaxes. In other embodiments, a suitable rotation transformation (or asuitable combination of rotation transformations) may be applied to theoriginal pointing axis and device-plane axes to select the modifiedpointing axis. Such rotation transformation(s) may involve rotation ofthe original pointing axis and device-plane axes about one of thedevice-plane axes.

FIG. 1 is a plan view of a personal planetarium device 10 according to aparticular embodiment of the invention. Device 10 is contained in ahousing 12. Preferably, housing 12 is sufficiently small that device 10may be hand held by a user and/or fit in a user's pocket or the like. Inparticular embodiments, housing 12 may be on the order of the size of amobile communication device or a personal digital assistant (PDA)device.

Device 10 comprises a graphical user interface which may include adisplay 14 and one or more user inputs 16. In the illustratedembodiment, user inputs 16 comprise a series of user input buttons16A-16I and push-wheel 16J. User inputs 16 may function to allow a userto input information into device 10 and display 14 may function to allowdevice 10 to output information to a user. As explained in more detailbelow, display 14 may also display representations of the night sky andof celestial objects contained therein together with information aboutsuch representations. In other embodiments, display 14 may comprise aso-called touch screen display, wherein display 14 also functions toprovide one or more user inputs 16.

In the illustrated embodiment, device 10 also comprises a motion and/orproximity sensor 18 which may sense the motion or proximity of a userand which may take one or more actions (e.g. turning device 10 ON orOFF) in response to detection of the presence or the lack of presence ofa user in proximity to device 10. By way of non-limiting example,motion/proximity sensor 18 may comprise an infrared or near infraredsensor, an acoustic sensor or the like. While turning on device 10represents one example of an action which may be taken in response todetection (by sensor 18) of user movement/proximity, other actions maybe taken in response to detection of a user movement/proximity (bysensor 18). By way of non-limiting example, device 10 may remain active,but display 14 may activate/deactivate in response to feedback fromsensor 18, device 10 may switch operational modes in response tofeedback from sensor 18, device 10 may provide audio information orgraphical information (e.g. static graphical content or video content)in response to feedback from sensor 18, or the like.

Device 10 may also comprise one or more input/output (I/O) ports 19 forcommunication with other electronic devices (not shown). In theillustrated embodiment, I/O ports 19 of device 10 comprise a USB port19A and a serial port 19B. Device 10 may comprise other types of I/Oports 19, including without limitation wireless I/O communicationsinterfaces.

FIG. 2 schematically illustrates a number of reference axes referred toin this description in relation to device 10, housing 12 and screen 14.Reference axes 22 and 24 represent a pair of orthogonal reference axesin a plane of screen 14. In the illustrated embodiment, reference axis22 is generally parallel to one edge 26 of screen 14 and orthogonalreference axis 24 is generally parallel to another edge 28 of screen 14although this is not necessary. Reference axes 22, 24 may be referred toas device-plane axes 22, 24. FIG. 2 also depicts a third axis 20 whichis generally orthogonal to both device-plane axes 22, 24 and isgenerally normal to screen 14. Third axis 20 may be referred to as thepointing axis 20 of device 10. It may be assumed, for the purposes ofthis description that device-plane axes 22, 24 and pointing axis 20intersect at location 30 which may be located at or near the center ofscreen 14. Location 30 may be referred to as the origin 30 of device 10.

FIG. 3 schematically illustrates a number of additional referencedirections used in this description. It is assumed, for the purposes ofexplaining FIG. 3, that origin 30 of device 10 is located on ahorizontal plane 32 at or near the surface of the earth. In the FIG. 3illustration, reference lines located on horizontal plane 32 are shownin dashed outline and reference lines that extend off of horizontalplane 32 are shown in solid lines. Reference lines 36A and 36B onhorizontal plane 32 respectively represent the directions of true northand magnetic north. Line 34 represents the zenith which extends throughorigin 30 to the center of the earth (not shown) in a direction normalto horizontal surface 32.

FIG. 3 also shown pointing axis 20 of device 10 and device-plane axis24. It is assumed in the FIG. 3 illustration, that pointing axis 20 isoriented so as to be directed toward the night sky (i.e. abovehorizontal plane 32). Line 40 represents the projection of pointing axis20 onto horizontal plane 32. The angle 42 between pointing axis 20 andline 40 may be referred to as the altitude 42 or altitude angle 42. Theangle 38A between true north 36A and line 40 may be referred to as theazimuth 38A or the azimuthal angle 38A. The angle 38B between magneticnorth 36B and line 40 may be referred to as the magnetic azimuth 38B andis related to azimuth 38A via the magnetic declination at the locationof device 10. Line 46 represents the intersection of the plane of screen14 (i.e. the plane containing device-plane axes 22, 24) and horizontalplane 32. In the mathematical convention of Euler angles, line 46 may bereferred to as the line of nodes. The angle 44 between device-plane axis24 and line 46 may be referred to as the roll 44 or roll angle 44. Thecombination of altitude 42 and roll 44 may be referred to as theattitude of device 10.

FIG. 4 is a block diagram schematically illustrating a number of thecomponents of device 10. Device 10 is controlled by controller 50. Inparticular embodiments, controller 50 is implemented by one or moreembedded processors. In general, however, controller 50 may comprise anysuitable combination of hardware and software capable of operating asdescribed herein. By way of non-limiting example, controller 50 maycomprise one or more suitably programmed data processors, memory andinterface hardware and/or software. Controller 50 may comprise one ormore programmable computers, which may control the operation of device10 through I/O ports 19.

Although not explicitly shown in the block diagram representation ofFIG. 4, device 10 may be understood to incorporate various interfaceelectronics as desirable for interfacing between controller 50 and thevarious other components of device 10. By way of non-limiting example,such interface electronics may comprise amplifiers, data buffers, dataregisters, analog to digital and digital to analog converters and thelike.

Controller 50 has access to, and interacts with, memory 52 via signals54. Memory 52 may comprise RAM memory and/or ROM memory. In someembodiments, portions of memory 52 may be internal to controller 50.Memory 52 may store software instructions (not explicitly shown), whichwhen executed by controller 50, cause controller 50 to operate device 10as described herein. Memory 52 may also store a celestial objectdatabase (not explicitly shown) and parameters thereof, as described inmore detail below.

As described briefly above, controller 50 may receive inputs from one ormore user inputs 16 via signals 56 and may control the output on display14 via signals 58. In addition, controller 50 may receive input from,and/or provide output to, other electronic devices using I/O ports 19and signals 60. Controller 50 may also receive signals 62 from I/Osensor 18 which may be used by controller 50 to takes action(s) asdescribed above.

In the illustrated embodiment, device 10 includes a clock 64 which mayprovide the current local time to controller 50 via clock signals 66. Insome embodiments, clock 64 may be a real time clock, which may provideyear, date and time data and which may be backed up by battery. In someembodiments, clock 64 may be configured (e.g. set and/or updated) by auser via user inputs 16 or by an external electronic device (not shown)via I/O ports 19. In other embodiments, controller 50 may be programmedto configure (e.g. set and/or update) clock 64, in response to otherinformation (e.g. location of device 10 and current date) which may beprovided via user inputs 16 or via I/O ports 19, for example. Inparticular embodiments, clock 64 is configured to provide controller 50with date information. In other embodiments, device 10 may compriseother techniques and/or other devices (not shown) for keeping track ofdate information. By way of non-limiting example, a user may input adate once during initialization (e.g. via user inputs 16) and thencontroller 50 may maintain a calendar function which increments the dateeach time that clock 64 reaches 24:00 hours. Device 10 could incorporateany other techniques and/or devices for keeping track of the date whichare known or become known to those skilled in the art. Without limitingthe generality of the foregoing, it is assumed in the remainder of thisdescription that clock signals 66 include date information.

Device 10 comprises an attitude sensor 76 which provides informationcorrelated with altitude angle 42 and roll angle 44 to controller 50 viaattitude signals 78. As discussed above, device 10, attitude sensor 76and/or controller 50 may comprise suitable interface electronics (notexplicitly shown) for processing attitude signals 78. In one particularembodiment, attitude sensor 76 comprises a plurality (e.g. three) tiltsensors (not expressly shown) oriented orthogonally to one another. Inone particular embodiment, attitude sensor 76 is oriented within housing12 such that the three axes of its tilt sensors are generally alignedwith device-plane axes 22, 24 and with pointing axis 20, although otherorientations of the axes of the tilt sensors are also possible.Controller 50 receives attitude signals 78 and uses attitude signals 78to ascertain altitude angle 42 and roll angle 44 (FIG. 3).

In other embodiments, attitude sensor 76 may comprise different types ofsensors. For example, attitude sensor 76 may comprise a different numberof tilt sensors, one or more gyroscopes, one or more optical sensors,one or more gravity sensors or the like. U.S. Pat. No. 6,570,506 (whichis hereby incorporated herein by reference) describes a number ofgravitational sensors for sensing a so-called nadir angle. Any of thesesensors could be used to implement attitude sensor 76.

Device 10 comprises a magnetic sensor 68 which provides information tocontroller 50 via magnetic sensor signals 70. The information providedby magnetic sensor 68 may be related to azimuth angle 38A, as discussedin more detail below. Device 10, magnetic sensor 68 and/or controller 50may comprise suitable interface electronics (not explicitly shown) forprocessing magnetic sensor signals 70. In one particular embodiment,magnetic sensor 68 comprises a plurality (e.g. three) magnetic sensors(not expressly shown) oriented orthogonally to one another. Magneticsensors 68 of this type are known in the art and may comprise individualmagnetic sensors or may come pre-fabricated with three orthogonalmagnetic sensors. In one particular embodiment, magnetic sensor 68 isoriented within housing 12 such that the three axes of its threemagnetic sensors are generally aligned with device-plane axes 22, 24 andwith pointing axis 20, although other orientations of the axes of themagnetic sensors are also possible.

Magnetic sensor 68 may comprise different types of individual magneticsensors, such as, by way of non-limiting example, magnetic resonancesensors, magnetic flux-gate sensors, Hall effect sensors or the like. Insome embodiments, magnetic sensor 68 may comprise a different number ofindividual magnetic sensors.

Magnetic sensor 68 senses the earth's magnetic field and outputsmagnetic sensor signals 70 which are received by controller 50. Incurrently preferred embodiments, controller 50 uses magnetic sensorsignals 70 together with the altitude angle 42 and roll angle 44 (asdetermined from attitude signals 78) to determine the three-dimensionalmagnetic azimuthal orientation 38B of device 10 relative to magneticnorth 36B (FIG. 3). Controller 50 may then use magnetic azimuthalorientation 38B together with local magnetic declination information toascertain azimuth angle 38A relative to true north 36A. As is wellknown, magnetic declination information represents the local differencebetween magnetic north 36B and true north 36A (FIG. 3).

Magnetic declination information may be obtained from a user via userinputs 16. For example, a user may be prompted to, or may otherwise,enter the local magnetic declination at the location where device 10 isbeing used via user inputs 16. As another example, controller 50 may beprovided with, or may have access to, magnetic declination referencedata (e.g. a database, a look up table or the like) which maps the localmagnetic declination to geographic coordinates (e.g. latitude andlongitude, the name of the closest city or town or the like) and a usermay be prompted to, or may otherwise, enter the local geographiccoordinates via user inputs 16. Controller 50 may then use thesegeographic coordinates together with the magnetic declination referencedata to obtain the local magnetic declination. The magnetic declinationreference data may be stored locally to device 10 (e.g. in memory 52) ormay be accessible to device 10 via I/O ports 19. In other embodiments,device 10 may comprise optional GPS unit 72 which may provide geographiccoordinates to controller 50 via signals 74 (i.e. in addition to or asan alternative to obtaining geographic coordinates via user inputs 16).

Device 10 may optionally comprise GPS unit 72 which may providegeographic coordinates (e.g. latitude and longitude) to controller 50via signals 74. In other embodiments, GPS unit 72 is not required andgeographic coordinates may be input to controller 50 by a user via userinputs 16. For example, a user may be prompted to, or may otherwise,enter the local latitude and longitude at the location where device 10is being used via user inputs 16. As another example, controller 50 maybe provided with, or may have access to, latitude and longitudereference data (e.g. a database, a look up table or the like) which mapslatitude and longitude to simplified geographical indicators (e.g. thename of the closest city or town or the like) and a user may be promptedto, or may otherwise, enter the simplified geographical indicators viauser inputs 16. Controller 50 may then use these simplified geographicalindicators together with the longitude and latitude reference data toobtain the local longitude and latitude. The longitude and latitudereference data may be stored locally to device 10 (e.g. in memory 52) ormay be accessible to device 10 via I/O ports 19.

FIG. 5 shows a method 100 for initializing device 10 according to aparticular embodiment of the invention. Method 100 may be implemented(at least in part) by controller 50 (FIG. 4) running suitable software.Method 100 commences in block 102 which involves configuring clock 64.In embodiments, where clock 62 is a real time clock with a battery backup, a user may verify the accuracy of the configuration of clock 64 inblock 102. In other embodiments, block 102 may involve configuring clock64 according to any of the methods described above.

Method 100 then proceeds to block 104 which involves obtaining thelatitude and longitude of the location in which device 10 is being used.Block 104 may involve any of the methods discussed above to obtainlatitude and longitude information via user inputs 16 and/or via GPSunit 72. The longitude obtained in block 104 may also be used bycontroller 50 to determine the time zone of the location in which device10 is being used and whether daylight savings is in effect. For example,controller 50 may have access to time zone/daylight savings referencedata (e.g. a look up table or the like, which may be locally stored inmemory 52 or may be accessible via I/O ports 19) which maps longitude totime zone and which maps latitude and longitude to daylight savingscustoms. The block 102 local time and the block 104 time zone/daylightsavings information can be used by controller 50 to determine theGreenwich mean time, which may then be used to determine the localsidereal time, as discussed in more detail below.

Method 100 then proceeds to block 106 which involves obtaining the localmagnetic declination. Block 106 may involve obtaining the local magneticdeclination in any of the ways described above (e.g. by direct userinput or by determining the local magnetic declination based on theblock 104 geographical information and suitable magnetic declinationreference data).

FIG. 6 shows a method 110 for operating device 10 to display (on display14) a sky pattern comprising representations of celestial objectsaccording to a particular embodiment. Method 110 may be implemented (atleast in part) by controller 50 (FIG. 4) running suitable programinstructions. Initialization method 100 (FIG. 5) may be performed priorto performing method 110. To use device 10 in accordance with method110, a user may orient device 10 such that pointing axis 20 is directedtoward the sky. Method 110 may then involve displaying (on display 14) asky pattern comprising representations of celestial objects located in avicinity of pointing axis 20.

Method 110 commences in block 112 which involves reading attitudesignals 78 from attitude sensor 76 as described above. Block 114 is anoptional block involving determining an orientation mode of device 10which is described in more detail below. Method 110 then proceeds toblock 116. Block 116 may involve using the block 112 attitude signals 78to determine altitude 42 and roll 44 of pointing axis 20. Where device10 is in its normal orientation mode, the altitude 42 and roll 44 ofpointing axis 20 may be determined from attitude signals 78 as describedabove. When device 10 is in its downward facing orientation mode, block116 may involve controller 50 determining suitably modified altitude andoptionally roll coordinates associated with a modified pointing axis, asdescribed in more detail below.

Method 110 then proceeds to block 118 which involves reading magneticsensor signals 70 from magnetic sensor 68 as described above. In block120, controller 50 determines azimuth angle 38A using the block 118information read from magnetic sensor 68 and the local magneticdeclination information as described above. In some embodiments,controller 50 may also use one or more of roll angle 44 and/or altitudeangle 42 determined in block 116 to help determine a three-dimensionalazimuth angle 38A. When device 10 is in its downward facing orientationmode, block 120 may involve controller 50 determining a suitablymodified azimuth coordinate associated with a modified pointing axis, asdescribed in more detail below. Method 110 then proceeds to block 122which involves an inquiry as to whether altitude 42, roll 44 and/orazimuth 38A have changed since the last iteration of method 110. Ifthere has been no change (block 122 NO output), then method 110 proceedsto block 124 which involves an inquiry as to whether the user has lockeddisplay 14. A user may lock display 14 using one or more of user inputs16. Assuming for the time being that the user has not locked display 14(block 124 NO output), then method 110 loops back to block 112. If therehas been a change in one or more of altitude 42, roll 44 and/or azimuth38A (block 122 YES output), then method 110 proceeds to block 126. Theblock 122 inquiry may be involve a thresholding process—e.g. an inquiryas to whether the measured altitude 42, roll 44 and/or azimuth 38A haschanged by more than threshold amounts. The block 122 inquiry may alsoinvolve a temporal filtering process—e.g. inquiry as to whether themeasured altitude 42, roll 44 and/or azimuth 38A has changed by morethan threshold amount(s) for sufficiently long period(s) of time. Whilenot explicitly shown in FIG. 6, the block 122 inquiry may return apositive result (block 122 YES output) on its first iteration or whenthe user-selected zoom level changes, even in cases where there has beenno change in altitude 42, roll 44 or azimuth 38A.

In block 126 of the illustrated embodiment, method 110 involvesdetermining the hour angle (HA) and declination (DEC) coordinatesassociated with the direction of pointing axis 20. The block 126determination may be based on the block 116 altitude 42, the block 120azimuth 38A and the latitude of the location in which device 10 is beingused. The details of this block 126 determination of HA and DEC are wellknown to those skilled in the art of astronomy. While sufficientaccuracy of the HA and DEC coordinates can generally be obtained fromaltitude 42, azimuth 38A and the latitude of the location in whichdevice 10 is being used, in some embodiments, the block 126 calculationof HA and DEC may also be based on other parameters.

Method 110 then proceeds to block 128 which involves determining thelocal sidereal time (LST) at the location in which device 10 is beingused. There are a variety of suitable techniques for determining the LSTbased on information available to controller 50 which are known to thoseskilled in the art of astronomy. Block 128 may involve any suchtechnique. Determining the LST in block 128 may involve reading thecurrent local time and date from clock 64 on clock signals 66.Determining the LST may also involve use of the longitude, the time zonein which device 10 is operating and/or whether daylight savings is ineffect at the location in which device 10 is operating. In oneparticular embodiment, determination of the LST may be accomplished byconverting the local time and date to a universal time (which mayinvolve use of the time zone and/or the existence of daylight savings atthe location in which device 10 is being used), using the universal timeto determine the Greenwich sidereal time (GST) and then using GSTtogether with the longitude at the location of device 10 to determinethe LST. Block 128 may use other techniques and/or approximations todetermine the LST.

Method 110 then proceeds to block 130 which involves using the block 128LST and the block 126 HA to determine the right ascension (RA). RA isrelated to LST and HA according to RA=LST−HA. At the conclusion of block130, controller 50 has access to the current DEC and RA associated withpointing axis 20. In block 134, controller 50 accesses a database ofcelestial objects to determine which of the celestial objects in thedatabase are sufficiently proximate to pointing axis 20 so as to beselected for display on display 14. The degree of proximity to pointingaxis 20 for a particular celestial object to be selected for display inblock 134 may be based on one or more proximity threshold(s). Suchproximity threshold(s) may in turn be based on a user-controlled zoomlevel which may be set by one or more of user inputs 16. A method forimplementing block 134 according to a particular embodiment of theinvention is explained in more detail below.

At the conclusion of block 134, controller 50 has determined a number ofcelestial objects which are proximate to pointing axis 20 for display ondisplay 14. In block 136, controller causes representations of the block134 celestial objects to be displayed as a sky pattern on display 14.The block 136 sky pattern displayed on display 14 models the view that auser might have on a clear night when looking at the night sky in thedirection of pointing axis 20. In addition to graphical representationsof celestial objects, the block 136 sky pattern display may compriseother information about celestial objects. By way of non-limitingexample, the block 136 display may show the names of certain celestialobjects, the names of constellations and/or other information aboutcertain celestial objects (e.g. age of star, type of star, distancebetween earth and star or the like). An example block 136 sky patterndisplay screen 14 is shown in FIG. 7.

Once the sky pattern is displayed in block 136, method 110 returns tothe block 124 inquiry to ascertain whether the user has elected to lockdisplay 14. A user may lock display 14 using one or more user inputs 16.If the user has not locked display 14 (block 124 NO output), then method110 loops back to block 112. If the user has locked display 14 (block124 YES output), then method 110 proceeds to block 138 where controller50 locks display 14. When display 14 is locked in block 138, then thesky pattern displayed on display 14 remains static and is longerupdated. Even though the sky pattern remains static, a user mayoptionally use device 10 (including display 14) to perform otheroperations in block 140. A number of types of other operations which maybe performed in block 140 are described below.

The block 134 determination of the celestial objects for display is nowdescribed in more particular detail. FIG. 8A shows a method 150 forimplementing block 134 according to a particular embodiment of theinvention. Method 150 may be performed at least in part by controller50. As discussed above, method 150 (block 134) may involve querying adatabase of celestial objects to determine which objects aresufficiently proximate to pointing axis 20 so as to be displayed ondisplay 14.

Method 150 is implemented generally by querying a database of celestialobjects for objects that are relatively proximate to the direction inwhich pointing axis 20 is oriented. By way of non-limiting example, thecelestial object database may be stored in memory 52 or may beaccessible to controller 50 via I/O ports 19. The elements of thecelestial object database may comprise records containing informationabout particular celestial objects, with each record corresponding to aparticular celestial object. By way of non-limiting example, theinformation contained in each record may include the name of thecelestial object, its distance from the earth, its age, its size, itstype (e.g. type of star) and/or the like. In the particular embodimentdescribed herein, the individual records of the database are indexed bythe DEC and RA coordinates of their corresponding celestial objects.Other indexing parameters could be used.

Method 150 commences in block 152 which involves determining theboundaries of the sky pattern to be displayed on display 14. Theboundaries of the sky pattern to be displayed may depend on a currentzoom level set by the user. In particular embodiments, the user-selectedzoom level may be set at one of a plurality of discrete levels. In oneparticular embodiment, the user may set the current zoom level usingrotary user input 16J which may be rotated in one direction to increasethe zoom (i.e. to provide a correspondingly smaller sky pattern) and inthe opposing direction to decrease the zoom (i.e. to provide acorrespondingly larger sky pattern). In other embodiments, other userinputs 16 could be used to provide the current zoom level.

The sky pattern to be displayed may be centered at the direction ofpointing axis 20. In one particular embodiment, the sky pattern to bedisplayed may comprise a rectangular-shaped planar projection of acorresponding portion of the celestial sphere centered at the direction(e.g. azimuth 38A and altitude 42 or corresponding RA and DEC) ofpointing axis 20. The projection of the celestial sphere (or portionsthereof) onto a plane may be accomplished using a variety of projectiontechniques known to those skilled in the art. By way of non-limitingexample, such projection techniques may include stereographicprojection, orthographic projection, azimuthal equal area projection,azimuthal equal distance projection, gnomonic projection or the like.The edges of the rectangular-shaped planar projection may thencorrespond to the edges of display 14 (i.e. the display boundary). Insome embodiments, a pair of edges of the rectangular-shaped displayboundary are parallel to the horizon at the location in which device 10is being used. Such a display boundary may be referred to as anon-roll-rotated display boundary. In other embodiments, the displayboundary may be rotated from the horizon by an angle corresponding toroll angle 44. Such a display boundary may be referred to as aroll-rotated display boundary.

A non-roll-rotated display boundary 75 determined according to aparticular embodiment is shown as a dashed-line rectangle 75 in FIG. 9.Display boundary 75 has corners (x₁,y₁), (x₁,y₂), (x₂,y₂) and (x₂,y₁)and is centered at a location corresponding to the planar projection ofthe intersection of pointing axis 20 with the celestial sphere. In theFIG. 9 illustration, display boundary 75 has left and right boundariesgiven by x₁=−zX and x₂=zX where z is a value corresponding to thecurrent zoom level and X is an azimuthal offset value. Similarly, thebottom and top boundaries of display boundary 75 are y₁=−zY and y₂=zY,where z is the value corresponding to the current zoom level and Y is aaltitude offset value. Method 150 may involve determining whichcelestial objects in the celestial object database are projected withindisplay boundary 75—i.e. within the rectangle formed by the corners(x₁,y₁), (x₁,y₂), (x₂,y₂) and (x₂,y₁).

In some embodiments, the celestial objects displayed on display 14 takeinto account roll angle 44 of device 10. This process may be referred toas roll-rotation display compensation. FIG. 9 shows a roll-rotateddisplay boundary 77 in a solid line. Roll-rotated display boundary 77 isrotated by an angle θ relative to display boundary 75, where θ may beequal to or based on roll angle 44. Roll-rotated display boundary 77 hascorners (x₁′,y₁′), (x₁′,y₂′), (x₂′,y₂′) and (x₂′,y₁′) in a roll-rotatedcoordinate system. In general, where a rotation involves a rotation byan angle θ about the origin, the coordinates (x′,y′) in the rotatedcoordinate system of a point (x,y) are related according to thetransformation:

x′=x cos θ+y sin θ

y′=−x sin θ+y cos θ

Such a transformation (where the roll angle 44 is used as the rotationalangle θ) may be performed on the corners (x₁,y₁), (x₁,y₂), (x₂,y₂) and(x₂,y₁) of display boundary 75 to obtain the corners (x₁′,y₁′),(x₁′,y₂′), (x₂′,y₂′) and (x₂′,y₁′) of the roll-rotated display boundary77 in the roll-rotated coordinate system.

Returning to FIG. 8A, method 150 then proceeds to block 154 whichinvolves determining a starting cell for the method 150 database query.The celestial object database may be divided into cells and rings toreduce the processing required to perform the method 150 query of thecelestial object database. A schematic graphical example of a particulartechnique for selecting cells 190A, 190B, 190C (collectively, cells 190)and rings 192A, 192B, 192C (collectively, rings 192) is shownschematically in FIG. 8B. In the illustrated example of FIG. 8B, thestarting ring 192A comprises a single starting cell 190A (shown aswhite). The second ring 192B (shown with angular stripes) comprises theeight cells 190B surrounding starting ring/cell 192A/190A and the thirdring 192C (shown as grey) comprises the sixteen cells 190C surroundingsecond right 192B. Similar rings 192 comprising an increasing number ofcells 190 may be constructed in such a manner as to surround thepreceding ring until the search space defined by rings 192 and cells 190includes the entire database.

The block 154 starting cell 190A may be based on the DEC and RAcoordinates of pointing axis 20 determined in blocks 126 and 130 (FIG.6) which may be referred to as DEC₀ and RA₀. The block 154 starting cell190A may be centered at DEC₀ and RA₀ and may span a declination range ofDEC₀±Δ_(DEC) and a RA range of RA₀±Δ_(RA). Second and subsequent rings192B, 192C, 192D . . . may comprise successively larger numbers of cells190B, 190C, 190D . . . surrounding the block 154 starting cell 190A andthe previously searched rings. For example, in the example illustratedin FIG. 8B, second ring 192B may comprise a ring bounded at its interioredge by first cell 190A and at its exterior edge by DEC₀±3Δ_(DEC) andRA₀±3Δ_(RA), third ring 192C may comprise a ring bounded at its interioredge by second ring 192B and at its exterior edge by DEC₀±5Δ_(DEC) andRA₀±5Δ_(RA) and the n^(th) ring 192 may comprise a ring bounded at itsinterior edge by the (n−1)^(th) ring and at its exterior edge byDEC₀±(2(n−1)+1)Δ_(DEC) and RA₀±(2(n−1)+1)Δ_(RA). It will be appreciatedthat the FIG. 8B division of the database into cells 190 and rings 192represents one particular exemplary embodiment. Cells 190 and rings 192having other sizes or configurations may be used.

Once the block 154 starting cell 190A is determined, method 150 proceedsto block 155 which involves getting the first database record(corresponding to a first celestial object) from within the startingcell 190A and setting the first database record to be the currentdatabase record. Method 150 then advances to block 156, which involvesobtaining the DEC and RA coordinates for the current database record(i.e. the current celestial object). In block 158, method 150 uses theLST corresponding to the location in which device 10 is being used(determined in block 128, FIG. 6) to determine the HA of the currentdatabase record. As described above, HA is related to LST and RAaccording to HA=LST−RA. Method 150 then proceeds to block 160 whichinvolves using the block 158 HA and the block 156 DEC of the currentdatabase record to determine the azimuth (AZ) and altitude (ALT)coordinates of the corresponding celestial object at the location thatdevice 10 is being used. Methods for conversion between DEC, HA(equatorial coordinates) and AZ, ALT (horizontal coordinates) are wellknown to those skilled in the art of astronomy.

Method 150 then proceeds to block 162 which, in the illustratedembodiment, involves projecting the block 160 ALT, AZ coordinates of thecurrent database record and the associated celestial object onto theblock 152 display boundary plane (e.g. the plane of display boundary 75(FIG. 9)). As discussed above, there are a number of mathematicaltechniques for performing this projection, including, withoutlimitation, stereographic projection, orthographic projection, azimuthalequal area projection, azimuthal equal distance projection, gnomonicprojection or the like. In some embodiments which incorporateroll-rotation display compensation, method 150 proceeds to optionalblock 164, where the block 162 projected coordinates are subjected tothe above-described roll-rotation transformation so as to express theprojected coordinates in the roll-rotated coordinate system of displayboundary 77 (FIG. 9).

Method 150 then proceeds to block 166 which involves an inquiry intowhether the current database record and the associated celestial objectare within the block 152 display boundary (i.e. display boundary 75 inembodiments without roll-rotation display compensation or displayboundary 77 in embodiments with roll-rotation display compensation). Ifthe block 166 inquiry is negative (i.e. the celestial object is outsideof display boundary 75, 77), then method 150 proceeds directly to block170. On the other hand, if the block 166 inquiry is positive (i.e. thecelestial object is inside display boundary 75, 77), then method 150proceeds to block 168 where the current database record and theassociated celestial object are marked or flagged for subsequent displayin block 136 (FIG. 6). From block 168, method 150 advances to block 170.

Block 170 involves an inquiry into whether the current database recordis the last database record within the current cell 190. If the block170 inquiry is negative, method 150 advances to block 172, whichinvolves determining the next database record in the current cell 190and setting the next database record to be the current database recordbefore looping back to block 156. If the block 170 inquiry is positive,then method 150 proceeds to block 174 which involves an inquiry as towhether the current cell 190 is the last cell 190 in the current ring192. If the block 174 is inquiry negative, then method 150 advances toblock 176 which involves getting the next cell 190 in the current ring192 and then to block 178 which involves getting the firstobject/database record in the new cell 190 before looping back to block156. If the block 174 inquiry is positive, then method 150 proceeds toblock 180 which involves an inquiry as to whether all of the objects inthe current ring 192 are outside of the block 152 display boundary (i.e.display boundary 75, 77 (FIG. 9)).

If some or all of the objects of the current ring 192 are inside theblock 152 display boundary (block 180 NO output), then method 150advances to block 182. In block 182, method 150 gets the next ring 192and sets the next ring to be the current ring and also gets the firstcell 190 in the new ring 192 and sets this cell to be the current cell.Method 150 then proceeds to block 184 which involves selecting the firstobject/database record in the new cell and new ring of block 182 andsetting the first database record to be the current database recordbefore looping back to block 156.

Method 150 continues looping until it reaches a ring 192 where none ofthe database records in the ring 192 fall within the display boundary.This condition corresponds to the block 180 YES output. At this pointmethod 150 concludes that there are no other objects to display andends.

As discussed above, block 136 (FIG. 6) involves displaying a sky patternon display 14 of device 10. The block 136 sky pattern includesrepresentations of the celestial objects determined in block 134 to bewithin the display boundary. Such a display is shown, for example, inFIG. 7. As discussed above, the celestial object database recordsassociated with certain celestial objects may contain additionalinformation. By way of non-limiting example, the information containedin each record may include the name of the celestial object, itsdistance from the earth, its age, its size, its type (e.g. type of star)or the like. If all or even part of this information is displayedsimultaneously on display 14, it may obscure or mask the representationsof other celestial objects or information about other celestial objects.

As shown in the example display of FIG. 7, this issue is particularlyproblematic where device 10 is a hand-held device and thesize/resolution of display 14 is limited. The FIG. 7 example displaycontains only the names of a few celestial objects, but the display ofthese few names obscures or masks the representations of other celestialobjects and the names of particular celestial objects obscure the namesof other celestial objects. This issue would be compounded if the namesof all of the celestial objects visible in the FIG. 7 display were shownsimultaneously or if it was desired to display other information aboutthe celestial objects being displayed.

This display overlap issue may be mitigated in some embodiments by usingvarious time splitting display techniques. Such time splittingtechniques may be based on the brightness of the displayed celestialobjects, on the type of celestial objects and/or on the type ofinformation displayed for example. In one particular example embodiment,a display loop involves: (i) displaying the names of stars having abrightness greater than a first threshold B₁ for a time period t=Δ₁;(ii) displaying the names of stars having a brightness greater than asecond threshold B₂ but less than or equal to the first threshold B₁ fora time period t=Δ₂; (iii) displaying the names of stars having abrightness greater than a third threshold B₁ but less than or equal tothe second threshold B₂ for a time period t=Δ₃; (iv) displaying thenames of deep space objects (DSOs) having a brightness greater than afirst DSO threshold B_(DSO) _(—) ₁ for a time period t=Δ_(DSO) _(—) ₁;(v) displaying the names of DSOs having a brightness less than or equalto the first DSO threshold B_(DSO) _(—) ₁ for a time period t=Δ_(DSO)_(—) ₂; and (vi) looping back to (i). Time splitting techniques based onother criteria (e.g. age of star, alphabetic order of the name of thestar or type of information for display) may use similar time splittingperiods. In some embodiments, there may be a brief period without anydisplayed information between successive display or at the conclusion ofeach iteration of display loop.

The criteria on which display information is time split may beuser-selectable. For example, in the above-described example embodiment,display information is time split based on object type (e.g. stars orDSOs) and based on brightness level. In other embodiments, a user mayuse user inputs 16 to cause display information to be time split basedon other criteria, such as the type of star, the age of star, thealphabetic order of the name of the star or the like. In someembodiments, the display of the representations of the celestial objects(in addition to the information about the celestial objects) may also betime split. In some embodiments, the types of information aboutcelestial objects that is displayed may be time split or toggled inresponse to user input. For example, it may be desirable to display thenames of objects during a first time slice and then to display otherinformation (e.g. the distance of the object from the earth) during anext time slice and then to display still other information (e.g. thetype of star) during a next time slice etc. The display of differenttypes of information may be layered over a different time splittingsequence. For example, a first loop through the above-describedbrightness-based time splitting sequence, may involve display of thenames of the celestial objects; the second loop through theabove-described brightness-based time splitting sequence, may involvedisplay of the distance of the celestial objects from the earth; and thethird loop through the above-described brightness-based time splittingsequence, may involve display of the type of star of the celestialobjects; and the fourth loop may loop back to the names again. Ratherthan strict time splitting, any of the above-described displaypartitioning techniques may run sequentially based on user toggling. Forexample, in the above-described looping sequence, the time slices Δ₁,Δ₂, Δ₃, Δ_(DSO) _(—) ₁, Δ_(DSO) _(—) ₂ may be replaced with usertoggling events. For example a user may toggle between displays of thenames of different brightness level stars using one or more of userinputs 16.

Optional block 114 of method 110 (FIG. 6) described above involvesdetermination of an orientation mode of device 10. In some embodiments,a user may set device 10 to one of a plurality of orientation modesusing one of more of user inputs 16. In one particular embodiment, theplurality of orientation modes include: normal orientation mode,downward orientation mode and auto-switching orientation mode. Use ofdevice 10 in normal orientation mode and in downward orientation modeare shown in FIGS. 10A and 10B respectively.

When device 10 is being used in normal orientation mode (FIG. 10A),pointing axis 20 is generally oriented above horizon 32 (i.e. altitude42 (FIG. 3) of pointing axis 20 is in a range of [0°, 90°]). Normalorientation mode is advantageous because the sky pattern on display 14is displayed back to the user with generally the same orientation as thesky itself, so that the user may quickly and easily shift their viewbetween the actual sky and display 14, so as to easily recognize actualcelestial objects based on the representations of these celestialobjects shown on display 14. Except where specifically stated otherwise,the description set out above assumes that device 10 is operating innormal orientation mode. Use of device 10 in normal orientation mode maynot be ideal in all circumstances. When used in normal orientation mode,device 10 can block part of the user's view of the sky. Also, the user'sarm(s) can tire from holding device 10 up (e.g. above his or her head)for use in normal orientation mode.

A particular downward orientation mode is shown in FIG. 10B. Downwardorientation mode may involve the application of one or more coordinatesystem rotation transformations about the origin 30. As such, whendiscussing downward orientation mode, this description refers to thetransformed (rotated) axes as “modified” pointing axis 20′ and“modified” device-plane axes. In some instances, particularly where usedalongside modified pointing axis 20′ and modified device-plane axes,this description refers to the non-transformed coordinate system axes20, 22, 24 as “original” pointing axis 20 and “original” device-planeaxes 22, 24. In other instances, however, the word “original” is notexpressly used to refer to pointing axis 20 and device plane axes 22,24, in which case these axes 20, 22, 24 should be understood to benon-transformed axes, unless otherwise specified. When used in downwardorientation mode, device 10 may be oriented such that original pointingaxis 20 is directed below horizon 32 (i.e. altitude 42 of originalpointing axis 20 is in a range of [−90°, 0°]). Even though originalpointing axis 20 is below horizon 32 and does not point at celestialobjects, it can be desirable in downward orientation mode to displayrepresentations of celestial objects on display 14. Consequently, indownward orientation mode, controller 50 may apply a suitable coordinaterotation transformation to the original axes 20, 22, 24 about the origin30 to obtain a modified coordinate system and, in particular, a modifiedpointing axis 20′.

In particular embodiments, the coordinate system transformation appliedby controller 50 in downward orientation mode comprises a coordinatesystem rotation of an angle γ about original device-plane axis 24. Inthe particular case of the illustrated embodiment of FIG. 10B, the angleγ through which the coordinate system is rotated is γ=90°. Where thecoordinate system rotation transformation is γ=90° about originaldevice-plane axis 24, the effect is that original pointing axis 20 isrotated such that modified pointing axis 20′ has the orientation oforiginal device-plane axis 22. That is, modified pointing axis 20′ maybe assigned to original device-plane axis 22. From the prospective ofconfiguring controller 50 and from utilization of processing resources,this rotation transformation of γ=90° about original device-plane axis24 represents a convenient transformation, particularly where attitudesensor 76 comprise individual sensors aligned with original axes 20, 22,24, since the actual rotation transformation need not be computed andthe effect of the rotation transformation may be accomplished byre-assigning the individual sensors of attitude sensor 76 to themodified axes. In particular, the individual attitude sensor originallyassigned to original device-plane axis 22 may be assigned by controller50 to be the modified pointing axis 20′ and the sensor assigned tooriginal pointing axis 20 may be assigned to be one of the modifieddevice-plane axes.

With such re-assignments, controller 50 can use the information fromattitude sensor 76 to determine a modified altitude 42′ (i.e. the anglebetween modified pointing axis 20′ (original device-plane axis 22) andhorizon 32) and a modified roll angle 44′ (i.e. the angle betweenoriginal device-plane axis 24 and the intersection of the plane formedby axes 20,22 and horizon 32). This sensor reassignment facilitates theuse of modified pointing axis 20′, modified altitude 42′ and modifiedroll 44′ without the need to perform actual coordinate transformationcalculations. Modified azimuth angle 38A′ (not explicitly shown) fordownward orientation mode may be defined as the angle between true north36A (FIG. 3) and the projection of modified pointing axis 20′ ontohorizon 32.

In general, the coordinate system rotation transformation for operationin downward orientation mode is not limited to the γ=90° rotation aboutoriginal device-plane axis 24 that is shown in FIG. 10B. In otherembodiments, the angle γ of rotation about original device-plane axis 24may take on other values. In particular embodiments, the angle γ ofrotation about original device-plane axis 24 may be set to a value in arange of (0°, 180°]—i.e. 0°<γ≦180°. In some embodiments, rotation γ maybe set to a value in a range of [45°, 180°]—i.e. 45°≦γ≦180°. Therotation parameter γ may be user-selectable. In other embodiments, thecoordinate system rotation transformations are not limited to rotationabout original device-plane axis 24 and may comprise general coordinatesystem rotations which involve various combinations of rotations aboutany of the original axes 20, 22, 24.

The rotation of coordinate systems about their origins and theassociated rotation transformations are well understood to those skilledin the art. For embodiments which involve generalized (i.e. non 90°)rotations of γ about original device-plane axis 24 or other generalizedrotations (e.g. about other axes), the definitions of modified pointingaxis 20′, modified altitude 42′, modified roll angle 44′ and modifiedazimuth 38A′ will depend on the particular rotation transformation used.The definitions of these modified parameters will be understood by thoseskilled in the art. Also, for embodiments which involve generalized(i.e. non 90°) rotations of γ about original device-plane axis 24 orother generalized rotations (e.g. about other axes), some sensedparameters (e.g. signals 70 representing information sensed by magneticsensor 68 and signals 78 sensed by attitude sensor 76) may betransformed by suitable rotation transformation or other suitableprocessing techniques, such that the information from such sensors isapplicable to the modified coordinate system and provides informationrelative to modified pointing axis 20′, modified altitude 42′, modifiedroll angle 44′ and modified azimuth 38A′.

Even though original pointing axis 20 is oriented below horizon 32 indownward orientation mode, a suitable coordinate transformation (e.g. asuitable value of γ for rotation about original device-plane axis 24)may be selected such that modified altitude 42′ of modified pointingaxis 20′ may generally be in a range of [0°, 90°]. The method 110operation of device 10 in downward orientation mode may be similar tothat described above for normal orientation mode, except that in block114 controller 50 determines that device 10 is operating in downwardorientation mode. After this block 114 determination, controller 50 mayperform transformations (as necessary) for substitution of modifiedpointing axis 20′, modified altitude 42′, modified roll angle 44′ andmodified azimuth 38A′ respectively for pointing axis 20, altitude 42,roll angle 44 and azimuth 38A in the above-described operations ofmethod 110. In some embodiments, the order of method 100 blocks 112, 114may be reversed.

Operation of device 10 in downward orientation mode has a number ofadvantages. For example, downward orientation mode overcomes the issuesassociated with device 10 blocking a portion of the user's view of thesky and with arm fatigue associated with holding device 10. Downwardorientation mode also makes it easy for a user to read or write on ahorizontal surface while viewing display 14.

A user may toggle between normal orientation mode and downwardorientation mode using one or more user inputs 16. In addition to normalorientation mode and downward orientation mode, a user may set device 10to auto-switching orientation mode using one or more user inputs 16. Inauto-switching mode, controller 50 may determine the altitude 42 (i.e.the angle between original pointing axis 20 and horizon 32) and mayautomatically set device 10 to one of normal orientation mode ordownward orientation mode depending on the current value of altitude 42.

FIG. 11 depicts a method 200 for implementing an auto-switchingorientation mode in block 114 according to a particular embodiment.Method 200 may be performed at least in part by controller 50. Method200 starts in block 202 which involves obtaining an initial altitudeangle 42 (i.e. the angle between original pointing axis 20 and horizon32). As discussed above, controller 50 may determine initial altitudeangle 42 based on attitude signals 78 from attitude sensor 76. Block 204involves an inquiry as to whether device 10 is currently operating innormal orientation mode. If the block 204 inquiry is positive, method200 branches to block 206, which involve evaluation of one or moreangular switch criteria. In one particular embodiment, the block 206angular switch criteria comprises an inquiry into whether the block 202initial altitude 42 is less than an angular threshold. The block 206angular threshold may be 0° or may be less than 0°, but may berelatively close to 0°. For example, the block 206 angular threshold maybe in a range of [−5°, −20°] and the block 206 angular switch criteriamay comprise an evaluation of whether the block 202 initial altitude 42is less than this angular threshold. If the block 206 inquiry isnegative, then method 200 proceeds to block 212 where it remains innormal orientation mode and branches to block 116 (FIG. 6) for theremainder of method 110.

If the block 206 inquiry is positive, then method 200 advances tooptional block 208 which involves an inquiry into whether there areother switch criteria to be satisfied. By way of non-limiting example,the block 208 other switch criteria may involve temporal criteria (e.g.the block 202 initial altitude angle 42 must remain below the block 206threshold for a sufficient period of time). Such temporal criteria couldprevent accidental or otherwise undesired switching between orientationmodes. The block 208 switching criteria may involve other criteria, suchas a user prompt, or some other criteria for preventing undesiredswitching between orientation modes. If the block 208 inquiry isnegative, then method 200 proceeds to block 212 where it remains innormal orientation mode and branches to block 116 (FIG. 6) for theremainder of method 110.

If the block 208 inquiry is positive (or if optional block 206 is notpresent), then method 200 advances to block 210, where controller 50changes the orientation mode of device 10 from normal orientation modeto downward orientation mode. Once the orientation mode is changed todownward orientation mode in block 210, method 200 proceeds to block 212and branches back to block 116 (FIG. 6) in downward orientation mode(i.e. with modified pointing axis 20′, modified altitude 42′, modifiedroll angle 44′ and modified azimuth 38A′, as required) for the remainderof method 110.

If the block 204 inquiry is negative (i.e. device 10 is initially indownward orientation mode), then method 200 branches to block 214. Block214 involves evaluation of angular switch criteria similar to that ofblock 206, except that the block 214 angular switch criteria maycomprise an inquiry as to whether the block 202 initial altitude 42 isgreater than an angular threshold which may be 0° or relatively close tozero (e.g. in a range of [−10°, 10°]). In currently preferredembodiments, the block 214 angular switch criteria is less than 0°, butis closer to 0° than the block 206 angular switch criteria. For example,the block 206 inquiry may be positive if the block 202 altitude 42 isless than or equal to −15° and the block 214 inquiry may be positive ifthe block 202 altitude 42 is greater than −5°. If the block 214 inquiryis negative, then method 200 branches to block 212 and back to block 116(FIG. 6) in downward orientation for the remainder of method 110.Optional block 216 involves evaluation of other switch criteria andwhich may be similar to those of block 208 and which may be designed toprevent undesired switching of between orientation modes. If the block216 inquiry is negative, then method 200 branches to block 212 and backto block 116 (FIG. 6) in downward orientation for the remainder ofmethod 110. If, however, the block 216 inquiry is positive, then method200 advances to block 218 which involves switching to normal orientationmode, before proceeding to block 212 and back to block 116.

As described above in block 140 of method 110 (FIG. 6), device 10 canperform other operations. One non-limiting example of another operationthat may be performed by device 10 is to provide additional informationabout celestial objects. As discussed above, the names of celestialobjects may be displayed on display 14 as a part of, or in addition to,the block 136 sky pattern. If a user is interested in obtaining moreinformation about a particular celestial object, then the user may useone or more user inputs 16 to select that particular celestial objectand device 10 may output more information (including possibly audio orgraphical content) about that particular celestial object.

Device 10 may provide a number of ways in which the user may use userinputs 16 to select a particular celestial object for which to displaymore information. If the user knows the name of a particular celestialobject (e.g. because it was displayed in the block 136 sky pattern orbecause the user is otherwise interested in a particular celestialobject for which the name is known), then the user can use user inputs16 to scroll through a user interface (e.g. a menu-driven, list-basedused interface) to select the particular celestial object from a menu.Such menus may be indexed by object name (e.g. in alphabetical order) orby any other suitable parameter (e.g. age of object, type of object, RAand DEC coordinates or the like). Selecting the particular celestialobject in this manner may or may not involve locking the display (block138).

As another way of selecting a particular celestial object, a user maylock the display (block 138) and may then use one or more user inputs 16to move a graphical indicator (e.g. a cursor or the like) on display 14.For example, the user may use inputs 16A, 16C, 16E, 16G (FIG. 1) to movea graphical indicator on the sky pattern displayed and locked on display14 until the graphical indicator is positioned over the desiredcelestial object and may then select the desired celestial object usinguser input 16I. Other combinations of user inputs 16 may be used to movea graphical indicator on, and to select a celestial object from, display14.

When a user moves a graphical indicator over a representation of thedesired celestial object, then controller 50 may select the desiredcelestial object from the celestial object database in a number of ways.For example, controller 50 may select the desired celestial object basedon comparing the (x,y) coordinates of a cursor (e.g. within screenboundary 75 (FIG. 9) of display 14) or the (x′,y′) coordinates of acursor (e.g. within the roll-rotated screen boundary 77 (FIG. 9) ofdisplay 14) to the corresponding (x,y) or (x′,y′) coordinates of thedisplayed database records and their corresponding celestial objects andselecting the database record whose coordinates most closely match thoseof the cursor. As another example, controller 50 may project the screenlocation of a cursor onto the celestial sphere and then may calculatethe RA and DEC of the cursor and compare it to the RA and DEC of variousdatabase records to determine the closest database record. Either ofthese methods may involve searching only a list of celestial objectsthat are currently displayed on display 14 (e.g. a list of objectsmarked for display in block 168 (FIG. 8A)), rather than the entirecelestial object database.

Another operation that may be performed by device 10 involves guiding auser to a particular celestial object. For example, a user may not knowwhere to locate a particular celestial object in the night sky. If theuser knows the name of the celestial object, then the user can selectthe celestial object using the above-described menu-based objectselection system. Once the particular celestial object is selected, thedevice can enter an operation mode similar to method 110 describedabove, except that controller 50 can also output one or more indicators(e.g. graphical or audio indicators) which guide the user to change thedirection of pointing axis 20 until pointing axis 20 is directedrelatively close to the direction of the selected celestial object. Theoperation of device 10 in such a mode may be similar to that shown inmethod 110, except that an additional block may be added (e.g. afterdisplaying the sky pattern in block 136 and before block 124) and theadditional block may involve comparing the coordinates of pointing axis20 (e.g. altitude 42 and azimuth 38A) to corresponding coordinates ofthe selected celestial object and outputting (or refreshing) one or morecorresponding directional indicator(s) which direct the user to movedevice 10 to reduce the difference between the coordinates of pointingaxis 20 and the corresponding coordinates of the selected celestialobject.

Another operation that may be performed by device 10 involvescontrolling the operation of a motorized telescope. This operationalmode is shown schematically in FIG. 12, where device 10 controls theoperation of motorized telescope system 80. Motorized telescope systemmay comprise a telescope 82 and a motorized mount 84. In the illustratedembodiment, mount 84 is an altitude, azimuthal (ALT, AZ) mount, buttelescope system 80 may comprise other types of telescope mounts as areknown in the art. Motorized telescope system 80 may be of the type(referred to as a GOTO and/or AUTOTRACKING telescope system) which maygo to and/or track desired celestial objects or, more particularly,which may go to and/or track desired celestial coordinates. Device 10 isoperatively connected to telescope system 80 using a communications link86. In the illustrated embodiment, communications link is shown asincorporating one or more wires, but this is not necessary andcommunications link 86 may be implemented wirelessly. Communicationslink 86 may connect to device 10 via I/O port(s) 19.

FIG. 13 shows a method 300 for using device 10 to control the operationof telescope system 80 according to a particular embodiment. Method 300begins in block 302 which involves selection of a particular celestialobject from within the celestial object database. The celestial objectdatabase may be resident on device 10, resident in telescope system 80or on an external device (not shown) that is accessible to device 10. Inthe illustrated embodiment of FIG. 13, block 302 is implemented using acursor-based object selection technique, but other object selectiontechniques (e.g. menu driven object selection or the like) may be usedin addition to or as alternatives to the illustrated cursor-basedtechnique.

In the illustrated embodiment, object selection 302 commences in block304 which involves manipulating device 10 (and pointing axis 20) until arepresentation of a desired celestial object is shown on display 14.This may be done in accordance with method 110 (FIG. 6) described above.When a representation of the desired celestial object is shown indisplay 14, the user locks the display in block 306. Block 306 may besimilar to the locking procedure of block 138 (FIG. 6). In block 308,the user uses one or more user inputs 16 to move a graphical indicator(e.g. a cursor) over the desired celestial object and then uses one ormore user inputs 16 to trigger object identification in block 310.

In block 312, controller 50 identifies the user-selected celestialobject from within the celestial object database. As alluded to above,the block 312 identification procedure may be performed in a number ofways. For example, controller 50 may select the desired celestial objectbased on comparing the (x,y) coordinates of the cursor when triggered(e.g. the (x,y) coordinates within screen boundary 75 (FIG. 9) ofdisplay 14) or the (x′,y′) coordinates of the cursor when triggered(e.g. the (x′,y′) coordinates within the roll-rotated screen boundary 77(FIG. 9) of display 14) with the corresponding (x,y) or (x′,y′)coordinates of the displayed database records and their correspondingcelestial objects. Controller 50 may then identify the database recordwhose (x,y) or (x′,y′) coordinates most closely match those of thecursor. As another example, controller 50 may project the screenlocation of the cursor when triggered onto the celestial sphere and thenmay calculate the RA and DEC of the cursor and compare it to the RA andDEC of various database records to determine the closest databaserecord. Either of these block 312 procedures may involve searching onlya list of celestial objects that are currently displayed on display 14(e.g. a list of objects marked for display in block 168 (FIG. 8A)),rather than the entire celestial object database.

Once the desired object is identified in block 312, the block 302object-selection procedure is complete and method 300 proceeds to block314 which involves looking up the selected celestial object in thecelestial object database to obtain its RA and DEC coordinates. In block316, the block 314 RA and DEC coordinates of the selected object arecommunicated to telescope system 80 so that telescope system 80 cantrack these coordinates. Block 316 may involve providing otherinformation to telescope system 80 (e.g. geographical coordinates (e.g.latitude and longitude) of the location which device 10 is being used,the local time, time zone and date, the local sidereal time or thelike).

Certain implementations of the invention comprise computer processorswhich execute software instructions which cause the processors toperform a method of the invention. For example, one or more processorsin device 10 may implement data processing steps in the methodsdescribed herein by executing software instructions retrieved from aprogram memory accessible to the processors. The invention may also beprovided in the form of a program product. The program product maycomprise any medium which carries a set of computer-readableinstructions which, when executed by a data processor, cause the dataprocessor to execute a method of the invention. Program productsaccording to the invention may be in any of a wide variety of forms. Theprogram product may comprise, for example, physical media such asmagnetic data storage media including floppy diskettes, hard diskdrives, optical data storage media including CD ROMs and DVDs,electronic data storage media including ROMs, flash RAM, or the like.The instructions may be present on the program product in encryptedand/or compressed formats.

Where a component (e.g. a software module, processor, assembly, device,circuit, etc.) is referred to above, unless otherwise indicated,reference to that component (including a reference to a “means”) shouldbe interpreted as including as equivalents of that component anycomponent which performs the function of the described component (i.e.that is functionally equivalent), including components which are notstructurally equivalent to the disclosed structure which performs thefunction in the illustrated exemplary embodiments of the invention.

As will be apparent to those skilled in the art in the light of theforegoing disclosure, many alterations and modifications are possible inthe practice of this invention without departing from the spirit orscope thereof. For example:

-   -   Method 150 (FIG. 8A) involves a system of determining whether to        display a particular celestial object by converting the location        independent equatorial celestial coordinates (RA, DEC) of the        object to location dependent horizontal coordinates (ALT, AZ)        and then projecting the horizontal coordinates onto a planar        surface representing display 14 to determine whether the object        is located within the display boundary 75, 77. In other        embodiments, the display boundary 75, 77 may be projected onto        the celestial sphere for comparison to the celestial objects in,        location dependent horizontal coordinates (ALT, AZ), location        dependent equatorial coordinates (DEC, HA) or        location-independent equatorial coordinates (DEC, RA).    -   In the embodiments described above, controller 50 makes use of        altitude angle 42 and roll angle 44 (as determined using        information from attitude sensor 76) together with information        from magnetic sensor 68 to determine azimuth angle 38A. In some        embodiments, this is not necessary and controller may determine        a sufficient approximation of azimuth angle 38A based only on        information from magnetic sensor 68.    -   In some embodiments, it is not necessary to account for roll        angle 44—i.e. device 10 can make use of altitude angle 42        (determined from attitude sensor 76) and azimuth angle 38A        (determined from magnetic sensor 68 and optionally from altitude        angle 42) and can function sufficiently accurately without use        of roll angle 44.    -   In some embodiments, roll angle 44 is used for the purpose of        determining azimuth angle 38A (e.g. in block 120 (FIG. 6)), but        is not used for the purposes of displaying the sky pattern (e.g.        in block 136 (FIG. 6)). This situation corresponds to the        non-roll compensated screen area boundary 75 shown in dashed        outline in FIG. 9.    -   Some of the above-described embodiments involve time splitting        of information that is displayed on display 14. In such        embodiments, controller 50 may repetitively cycle through the        different display information for each time slice. In other        embodiments, the splitting of information need not be based        strictly on time. For example, in some embodiments, information        for display may be divided into a number of display slices and a        user may cycle (i.e. toggle) through the display slices via one        or more user inputs 16. The division of information into such        display slices may be based on any of the same criteria        described above for time slices. Controller 50 may also be        configured to pause the repetitive cycling through time/display        slices in response to one or more user inputs 16.    -   The time/display slices described herein and the display of        portions of information and/or information about subsets of        displayed objects may be used with other celestial object        display devices and may provide methods of operating such        devices. By way of non-limiting example, such time slices could        be used in conjunction with personal computer-based planetarium        software to avoid clutter on the on-screen display.    -   When the display on screen 10 is paused (e.g. block 138 of        method 110 (FIG. 6)), a user may cause controller 50 to alter        the on-screen display (e.g. using user inputs 16). By way of        non-limiting example, a user may use user inputs 16A, 16C, 16E,        16G to cause controller 50 to cause the display on screen 10 to        pan (e.g. left, up, down and/or right). As another non-limiting        example, a user may use user input 16J to cause controller 50 to        cause the display on screen 10 to zoom (e.g. in or out), except        that zoom may be done without waiting to pause the display on        screen 10. It will be appreciated that such pan and/or zoom        operations may involve changing the coordinates corresponding to        display boundary 75, 77 (FIG. 9).        Accordingly, the scope of the invention is to be construed in        accordance with the substance defined by the following claims.

1. A hand-held device for displaying a sky pattern comprising graphicalrepresentations of one or more celestial objects and additionalinformation in respect of the celestial objects on a limited-sizedisplay screen, the device comprising: a controller configured to:access a database of celestial objects comprising data corresponding tographical representations of the celestial objects and additionalinformation in respect of at least some of the celestial objects; selectone or more selected celestial objects from within the database fordisplay; a display screen for displaying graphical representations ofthe one or more selected celestial objects and at least some of theadditional information for the one or more selected celestial objects;wherein the controller is configured to display the at least some of theadditional information on the display screen over a plurality of displayslices and, in each display slice, to display at least one of: the atleast some of the additional information for a corresponding subset ofthe one or more selected celestial objects, the corresponding subsetdifferent for each display slice; and a corresponding portion of the atleast some of the additional information for the one or more selectedcelestial objects, the corresponding portion different for each displayslice; wherein the controller is configured to display the at least someof the additional information on the display screen over the pluralityof display slices by successively displaying each of the plurality ofdisplay slices for a period of time to thereby serially display theplurality of display slices over time.
 2. A device according to claim 1comprising a sensing system comprising one or more sensors for providinginformation about an orientation of the device and wherein thecontroller is configured to: receive the orientation information fromthe sensing system and to determine therefrom an altitude angle of apointing axis and an azimuthal angle of the pointing axis; access thedatabase and determine, from within the database, the one or moreselected celestial objects for display based at least in part on ameasure of proximity of the celestial objects to the pointing axis.
 3. Adevice according to claim 2 wherein the controller is configured torepeat the process of receiving the orientation information, determiningtherefrom the altitude angle and azimuthal angle and accessing thedatabase to determine the one or more selected celestial objects fordisplay, to thereby update the sky pattern displayed on the displayscreen based on the orientation of the device.
 4. A device according toclaim 1 wherein the controller is configured to display, in each timeslice, the at least some of the additional information for a subset ofthe one or more selected celestial objects and to determine inclusion ofthe one or more selected celestial objects in a particular subset basedon one or more of: types of celestial objects; distances of celestialobjects from earth; ages of celestial objects; alphabetic order of namesof celestial objects; and brightness levels of celestial objects.
 5. Adevice according to claim 3 wherein the controller is configured torepetitively cycle through the plurality of display slices based on oneor more of: a display time period associated with each display slice;and receiving user toggle inputs which cause the controller to advanceto a next display slice.
 6. A device according to claim 5 wherein thecontroller is configured to pause the repetitive cycle through theplurality of display slices in response to user input.
 7. (canceled) 8.A device according to claim 3 wherein the controller is configured topause the updating of the sky pattern displayed on the display screen inresponse to user input, so that the sky pattern displayed on the displayscreen remains static.
 9. A device according to claim 8 the controlleris configured to display a user-controllable graphical indicator on thedisplay screen when the updating of the sky pattern displayed on thedisplay screen is paused and to allow a user to select a particularcelestial object based on the user moving the graphical indicator on thedisplay screen to a vicinity of the graphical representation of theparticular celestial object.
 10. A device according to claim 9 wherein,upon selection of the particular celestial object, the controller isconfigured to perform at least one of: outputting information about theparticular celestial object to the user; and controlling a motorizedtelescope to move in a manner such that the particular celestial objectcomes within its field of view. 11.-12. (canceled)
 13. A deviceaccording to claim 8 wherein, when the updating of the sky pattern ispaused, the controller is configured to at least one of: effect panningof the sky pattern displayed on the display screen in response to userinput; and effect zooming in or zooming out of the sky pattern displayedon the display screen in response to user input.
 14. A method fordisplaying a sky pattern comprising graphical representations of one ormore celestial objects and additional information in respect of thecelestial objects on a limited-size display screen of a hand-helddevice, the method comprising: providing a database of celestial objectscomprising data corresponding to graphical representations of thecelestial objects and additional information in respect of at least someof the celestial objects; displaying graphical representations of one ormore selected celestial objects on the display screen; displaying atleast some of the additional information on the display screen for theone or more selected celestial objects; wherein displaying the at leastsome of the additional information on the display screen for the one ormore selected celestial objects comprises displaying the at least someof the additional information on the display screen over a plurality ofdisplay slices and, in each display slice, displaying at least one of:the at least some of the additional information for a correspondingsubset of the one or more selected celestial objects, the correspondingsubset different for each display slice; and a corresponding portion ofthe at least some of the additional information for the one or moreselected celestial objects, the corresponding portion different for eachdisplay slice; wherein displaying the at least some of the additionalinformation on the display screen over the plurality of display slicescomprises successively displaying each of the plurality of displayslices for a period of time to thereby serially display the plurality ofdisplay slices over time.
 15. A method according to claim 14 comprising:providing the device with one or more sensors for sensing informationabout an orientation of the device; determining an altitude angle of apointing axis of the device and an azimuthal angle of the pointing axisbased at least in part on the sensed orientation information; accessingthe database and determining, from within the database, the one or moreselected celestial objects for display based at least in part on ameasure of proximity of the celestial objects to the pointing axis. 16.A method according to claim 15 comprising repeating determining thealtitude angle and the azimuth angle of the pointing axis, accessing thedatabase to determine one or more selected celestial objects for displayand displaying graphical representations of the one or more selectedcelestial objects, such that the sky pattern displayed on the displayscreen is updated based on the orientation of the device.
 17. A methodaccording to claim 14 wherein displaying the at least some of theadditional information on the display screen over a plurality of displayslices comprises displaying, in each time slice, the at least some ofthe additional information for a subset of the one or more selectedcelestial objects and the method comprises determining inclusion of theone or more selected celestial objects in a particular subset based onone or more of: types of celestial objects; distances of celestialobjects from earth; ages of celestial objects; alphabetic order of namesof celestial objects; and brightness levels of celestial objects.18.-20. (canceled)
 21. A method according to claim 16 comprising pausingthe updating of the sky pattern displayed on the display screen inresponse to user input, so that the sky pattern displayed on the displayscreen remains static.
 22. A method according to claim 21 comprisingdisplaying a user-controllable graphical indicator on the display screenwhen the updating of the sky pattern displayed on the display screen ispaused and allowing a user to select a particular celestial object basedon the user moving the graphical indicator on the display screen to avicinity of the graphical representation of the particular celestialobject.
 23. A method according to claim 22 comprising, upon selection ofthe particular celestial object, performing at least one of: outputtinginformation about the particular celestial object to the user; andcontrolling a motorized telescope to move in a manner such that theparticular celestial object comes within its field of view. 24.-26.(canceled)
 27. A telescope system comprising: a hand-held control devicecomprising: one or more sensors for sensing information about anorientation of the hand-held control device; a device controller, thedevice controller configured to: receive the orientation informationfrom the one or more sensors and to determine therefrom a pointing axisof the hand-held device; and access a database of celestial objects anddetermine, from within the database, one or more selected celestialobjects for display based at least in part on a measure of proximity ofthe selected celestial objects to the pointing axis; and a displayscreen for displaying a sky pattern comprising graphical representationsof the one or more selected celestial objects; and a motorized telescopecommunicatively coupled to the hand-held control device, comprising: amotorized mount; and a telescope mount controller configured to receivecontrol information from the hand-held control device and to use thecontrol information to control movement of the mount to adjust a fieldof view of the motorized telescope; the control information based atleast in part on an attitude of the pointing axis.
 28. A systemaccording to claim 27 wherein the device controller is configured todisplay a user-controllable graphical indicator on the display screen toallow a user to select a particular celestial object based on the usermoving the graphical indicator on the display screen to a vicinity ofthe graphical representation of the particular celestial object; andwherein the telescope mount controller is configured to control themovement of the mount such that the particular celestial object comeswithin the field of view of the telescope.
 29. A system according toclaim 27 wherein the device controller is configured to display a menucomprising the selected celestial objects on the display screen and toallow a user to select a particular celestial object from among theselected celestial objects using the menu and the telescope mountcontroller is configured to control the movement of the mount such thatthe particular celestial object comes within the field of view of thetelescope.
 30. A method for controlling an orientation of a motorizedtelescope using a hand-held control device, the method comprising:providing the hand-held control device with one or more sensors andsensing information about an orientation of the hand-held control deviceusing the one or more sensors; determining a pointing axis of thehand-held device based at least in part on the sensed orientationinformation; accessing a database of celestial objects and determining,from within the database, one or more selected celestial objects fordisplay based at least in part on a measure of proximity of thecelestial objects to the pointing axis; displaying graphicalrepresentations of the one or more selected celestial objects on adisplay screen of the hand-held control device; communicatively linkingthe hand-held control device with the motorized telescope; andcontrolling movement of a mount of the motorized telescope to adjust afield of view of the motorized telescope based on control informationreceived from the hand-held control device; the control informationbased at least in part on an attitude of the pointing axis.
 31. A methodaccording to claim 30 comprising: displaying a user-controllablegraphical indicator on the display screen; allowing a user to select aparticular celestial object based on the user moving the graphicalindicator on the display screen to a vicinity of the graphicalrepresentation of the particular celestial object; and controlling themovement of the mount such that the particular celestial object comeswithin the field of view of the motorized telescope.
 32. A methodaccording to claim 30 comprising displaying a menu comprising theselected celestial objects on the display screen and allowing a user toselect a particular celestial object from among the selected celestialobjects using the menu; and controlling the movement of the mount suchthat the particular celestial object comes within the field of view ofthe motorized telescope.
 33. A hand-held control device for controllingan orientation of a motorized telescope, the hand-held control devicecomprising: a sensing system comprising one or more sensors forproviding information about an orientation of the device; and a devicecontroller, the device controller configured to: receive the orientationinformation from the one or more sensors and to determine therefrom apointing axis of the hand-held device; access a database of celestialobjects and determine, from within the database, one or more selectedcelestial objects for display based at least in part on a measure ofproximity of the celestial objects to the pointing axis; and transmitcontrol information to the motorized telescope for controlling themovement of a mount of the motorized telescope to adjust a field of viewof the motorized telescope; a display screen for displaying a skypattern comprising graphical representations of the one or more selectedcelestial objects; the control information based at least in part on anattitude of the pointing axis.
 34. A device according to claim 33wherein the device controller is configured to: display auser-controllable graphical indicator on the display screen to allow auser to select a particular celestial object based on the user movingthe graphical indicator on the display screen to a vicinity of thegraphical representation of the particular celestial object; anddetermine the control information based on particular celestial object,for controlling the movement of the mount of the motorized telescope toadjust the field of view of the telescope so that the particularcelestial object is in the field of view of the motorized telescope. 35.A device according to claim 33 wherein the device controller isconfigured to: display a menu comprising the selected celestial objectson the display screen and to allow a user to select a particularcelestial object from among the selected celestial object using themenu; and determine the control information based on particularcelestial object, for controlling the movement of the mount of themotorized telescope to adjust the field of view of the telescope so thatthe particular celestial object is in the field of view of the motorizedtelescope.